
/**
 * @author Leonardo Silveira Aula1 LLP
 *
 */
public class Autor {
	
//	Atributos //
	
	private int codigo;
	private String nome_completo;
	private String nome_citacao;
	private String universidade;
	private boolean ehpremiado= false;
	private Publicacao[] publicacao = new Publicacao[3];
	
	/**
	 * cadastra classe Autor 
	 * @param codigo
	 * @param nome_completo
	 * @param nome_citacao
	 * @param universidade
	 * @return Objeto Autor
	 */
	public Autor cadastraAutor(int codigo,String nome_completo,String nome_citacao,String
			universidade){
		this.codigo = codigo;
		this.nome_completo = nome_completo ;
		this.nome_citacao = nome_citacao ;
		this.universidade = universidade ;
		
		return this;
	}
	
	/**percorrer e imprimir o vetor de publicacoes
	 * 
	 */
	public void listarPublicacoes() {
		
		for (int i = 0; i < publicacao.length; i++) {
			Publicacao temp = this.publicacao[i];
			if (temp != null){
				temp.imprimirBibliografia();
			}
				
		}
		
	}
//	Metodos de Acesso//
	
	
	public int getCodigo() {
		return codigo;
	}
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	public String getNome_completo() {
		return nome_completo;
	}
	public void setNome_completo(String nome_completo) {
		this.nome_completo = nome_completo;
	}
	public String getNome_citacao() {
		return nome_citacao;
	}
	public void setNome_citacao(String nome_citacao) {
		this.nome_citacao = nome_citacao;
	}
	public String getUniversidade() {
		return universidade;
	}
	public void setUniversidade(String universidade) {
		this.universidade = universidade;
	}
	public boolean isEhpremiado() {
		return ehpremiado;
	}
	public void setEhpremiado(boolean ehpremiado) {
		this.ehpremiado = ehpremiado;
	}
	public Publicacao[] getPublicacao() {
		return publicacao;
	}
/**
 * Contabiliza numero de Publicacoes de determinado Autor	
 * @return int
 */
	public int contabilizaPublicacao(){
		int x=0;
		for(int i=0;i<this.publicacao.length;i++){
			if (this.publicacao[i] != null) x++;
		}
		return x;
	}
	
	/**
	 * Associa determinada Publicacao a um Autor 
	 * Cada Autor elimitado a 3 publicacoes
	 * @param publicacao
	 * @return boolean
	 */
	public boolean setPublicacao(Publicacao publicacao) {
		
	for(int i=0;i<this.publicacao.length;i++){
		
			if (this.publicacao[i] == null){
		
				this.publicacao[i] = publicacao;
				System.out.println("Associacao concluida ");
				return true;
				
				
			}else if ((i==(this.publicacao.length-1))&&(this.publicacao[i] != null)){
					System.out.println("O autor ja possui 3 publicacoes\n publicacao nao Criada");
			
			}
	
		}
	return false;
	} 
	

}
